<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>2.组件的嵌套</title>
		<!-- 引入开发版本的Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root"></div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		//定义一个Welcome组件
		const  Welcome = Vue.extend({
			template:`<h1>欢迎学习Vue组件</h1>`
		})

		//把Welcome组件，注册为全局组件（vm、以及所有组件结构中，都可以直接使用Welcome组件）
		//什么时候需要全局注册？—— 当一个组件，要在很多地方都是用的时候。
		Vue.component('Welcome',Welcome)

		const School = Vue.extend({
			template:`
				<div style="background:gray;padding:10px">
					<Welcome></Welcome>
					<h2>学校名称：{{sname}}</h2>
					<h2>学校地址：{{address}}</h2>
					<button @click="showSchool">点我提示学校信息</button>	
					<button @click="sname+='!'">点我改学校名</button>	
				</div>
			`,
			data(){ //注意：组件的data配置项必须写成函数
				return {
					sname:'尚硅谷',
					address:'宏福科技园',
				}
			},
			methods:{
				showSchool(){
					alert(`学校名：${this.sname}，学校地址：${this.address}`)
				},
			},
			watch:{
				sname(value){
					console.log('sname变了',value)
				}
			}
		})
		
		const Person = Vue.extend({
			template:`
				<div style="background:orange;padding:10px">
					<Welcome></Welcome>	
					<h2>人的名字：{{pname}}</h2>
					<h2>人的性别：{{gender}}</h2>
					<button @click="showPerson">点我提示人的信息</button>
				</div>
			`,
			data(){
				return {
					pname:'张三',
					gender:'男'
				}
			},
			methods:{
				showPerson(){
					alert(`人名：${this.pname}，性别：${this.gender}`)
				}
			}
		})
		
		//App组件是所有组件的“外壳”组件
		const App = Vue.extend({
			template:`
				<div>
					<Welcome></Welcome>
					<School></School>
					<br>
					<Person></Person>
				</div>
			`,
			components:{School,Person}
		})

		//创建一个vm（以后整个应用当中有且只有一个！）
		new Vue({
			el:'#root',
			template:`<App></App>`,
			components:{App},
		})
		
	</script>
</html>